summaryrefslogtreecommitdiff
path: root/installation dans une application PHP.txt
blob: fb5d3a62e95b8b17fb36acdedcbcaabb42182d12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
1/ installation

cd "mon projet"
git clone git@ordipolo.fr:ckeditor5
copier tout son contenu (sauf le .git) dans le dossier racine de notre application et supprimer le dossier source
rm -r ckeditor5 --interactive=never
attention quand un index.php existe déjà

npm install ckeditor5
composer require htmlawed/htmlawed

les 11 fichiers récupérés par le git clone:
lib/ckeditor5/create.php
lib/ckeditor5/clean_html.php
lib/ckeditor5/view.php
lib/ckeditor5/image_upload.php
lib/ckeditor5/articles_hors_editeur.css
config.php
installation dans une application PHP.txt
index.php							(appel des contrôleurs)
src/templates/page.php				(HTML principal de la page web)
data/page/html/articles.html
data/page/images/chirurgien jaune.jpg


2/ à vérifier:
créer un lien symbolique comme ceci (commande pour debian):

chemin absolu
ln -s /var/www/ckeditor5/node_modules/ckeditor5/dist/translations /var/www/ckeditor5/node_modules/ckeditor5/dist/browser/

chemin relatif de la racine de l'appli:
ln -s ../translations node_modules/ckeditor5/dist/browser/

ça régle un problème de chemin rencontré à la ligne: import coreTranslations from 'ckeditor5/translations/fr.js'; dans lib/ckeditor5/template.php
gràce à un lien symbolique, le programme s'attend à trouver un dossier "translations" dans "browser"


3/ essai
les paramètres dans config.php et les fichiers dans data permettent normalement
- d'ouvrir l'éditeur
- de lire des données dans des fichiers et de les insérer dans l'éditeur pour modification

la sortie au "submit" est nettoyée puis se retrouve dans $html_from_editor


3/ intégration à un projet

a) index.php et src/templates/page.php sont à remplacer en fonction de notre application
regarder à l'intérieur et adapter son propre code

b) config.php est à personnaliser et/ou à copier ailleurs,
du moment que les variables à l'intérieur restent disponibles

c) le dossier data et ses sous-dossiers ont besoin de droits en écriture

a) adapter le routeur dans index.php

b) adapter ce qui suit "// modèle" dans index.php et lib/ckeditor5/create.php pour obtenir les données souhaitées (BDD, fichiers)

c) adapter le fichier config.php (vérifier les chemins)

d) ajouter <?= $css_editeur ?> dans le <head>
ajouter aussi <?= $contenu ?> dans le <body> pour afficher l'éditeur ou du HTML créé par l'éditeur

e) insérer dans chaque page affichant des données créées avec l'éditeur:
<link rel="stylesheet" href="lib/ckeditor5/article_hors_editeur.css" />
l'éditeur ne génère pas de CSS mais seulement du HTML basique, ce CSS imite le rendu à l'intérieur de l'éditeur

normalement c'est bon fini, ce qui suit est de l'information utile si on souhaite partir de zéro avec NPM et la doc





5/ explication et choix des plugins
tout ça est déjà fait, mais vous pouvez toujours personnaliser l'éditeur en choisissant des plugins différents

voici ce que j'ai fait dans: lib/ckeditor5/template.php

a) créer une importmap avec les chemins des fichiers
<script type="importmap">
{
    "imports": {
        "ckeditor5": "http://<?= $server_root ?>node_modules/ckeditor5/dist/browser/ckeditor5.js",
        "ckeditor5/": "http://<?= $server_root ?>node_modules/ckeditor5/dist/browser/"
    }
}
</script>

b) charger une liste de plugins façon python
import { "liste de plugins" } from "ckeditor5";

c) rechoisir les plugins dans ClassicEditor.create():
plugins: [ "liste de plugins" ] ...

d) choisir les élément de la toolbar
toolbar; { items: [ "éléments" ], ...

e) autres éléments:
toolbar des images et des tables, sécurité des envois AJAX